package nespresso.servlets;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.*;

import nespresso.beans.*;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class CommandenewServlet extends HttpServlet {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Log log;
	
	public CommandenewServlet() {
		log = LogFactory.getLog(CommandenewServlet.class);
	}

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		/*
		 * si l'utilisateur tape l'adresse de la servlet directement dans la barre d'adresse, il est renvoyé
		 * sur la page d'accueil !
		 */
		response.sendRedirect("nespresso.jsp");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// on ouvre une session pour y mettre nos objets et pour protéger les pages
		request.setCharacterEncoding("UTF-8");
		HttpSession session  = request.getSession();
		User currentUser = (User)session.getAttribute("user");
		Commande c = (Commande)session.getAttribute("commande");
		
		// on récupère la valeur du bouton de validation
		String bvalide = request.getParameter("Valide");
		if(bvalide.equals("Retour")) response.sendRedirect("commandes.jsp");
		else {
			if(bvalide.equals("Créer la commande")) {
				String port = request.getParameter("port");
				c.SetPort(Float.parseFloat(port));
				if(c.AddCommande()) { // On insère la ligne dans la base avec test du statut de l'insertion
					request.setAttribute("BDD", "Commande ajoutée avec succès !" );
					Base bu = new Base();
					User UserTo = new User();
					bu.GetResultat("USERS");
					while(bu.Suivant())
						if(!(bu.GetTexte("EMAIL") == null)) {
							UserTo.setId(bu.GetTexte("ID"));
							UserTo.setLogin(bu.GetTexte("LOGIN"));
							UserTo.setPrenom(bu.GetTexte("PRENOM"));
							UserTo.setNom(bu.GetTexte("NOM"));
							UserTo.setEmail(bu.GetTexte("EMAIL"));
							new EnvoiMail(currentUser, UserTo, "NEWCOMMANDE");
						}
					bu.Free();
				} else {
					request.setAttribute("BDD", "Echec lors de la création de la commande !" );
					log.error("Echec lors de la création de la commande !");
				}
				RequestDispatcher reqDispatcher = getServletConfig().getServletContext().getRequestDispatcher("/commandes.jsp");
				reqDispatcher.forward(request,response);
    		} else
    			if(bvalide.equals("Nouvelle ligne")) response.sendRedirect("lignenew.jsp");
		}
    	    	
	}

}
